<?php
	require_once PATH_OBJECT.'dataObject.php';
	
class dataObject_adresse extends dataObject
{
 /* @desc    Identifiant du bloc adresse
     * @var     int
     */
    public $_IDENTIFIANT_ADRESSE = 0;
    /**
     * @desc    Type de l'adresse: geographique ou postale
     * @var     varchar
     */
    public $_TYPE_ADR = '';
	  	 
/**
     * @desc    Etat de l'adresse
     * @var     ENUM('A', 'I') 
     */
    public $_ETAT_ADR = '';
/**
     * @desc    ligne 1 dans le formulaire d'adresse
     * @var     varchar
     */
    public $_LIGNE1_ADR = '';
/**
     * @desc    ligne 2 dans le formulaire d'adresse
     * @var     varchar
     */
    public $_LIGNE2_ADR = '';
/**
     * @desc    ligne 3 dans le formulaire d'adresse (ville)
     * @var     varchar
     */
    public $_LIGNE3_ADR = '';
/**
     * @desc    identifiant de la personne disposant de l'adresse
     * @var     varchar
     */
    public $_IDENTIFIANT_PERSONNE = 0;
    
    
    
    
  public function __construct( $iId=0 )
    {
       parent::__construct();

       if ( $iId != 0 )
       {
            $sQuery = "SELECT   *   /*+ dataObject_adresse::__construct */  
                       FROM adresse 
            		   WHERE Identifiant_adresse = ".$iId;
            
            $aRows =  self::$_oConnexion->query($sQuery);
	  		$aRow = $aRows[0];
            $this->_IDENTIFIANT_ADRESSE  	 = $iId;
			$this->_TYPE_ADR 				= $aRow['Type_adresse'];
			$this->_ETAT_ADR 				= $aRow['Etat_adresse'];
			$this->_LIGNE1_ADR 				= $aRow['Ligne1_adresse'];
			$this->_LIGNE2_ADR 				= $aRow['Ligne2_adresse'];
			$this->_LIGNE3_ADR				= $aRow['Ligne3_adresse'];
			$this->_IDENTIFIANT_PERSONNE	= $aRow['Identifiant_personne'];       
           
       }
    }
    /**
     * récupere la table adresse selon le(s) criter(s) précisés ou pas 
	 */
    function adresse_select( $sCritere = null )
    {
        $aRow = false;
    	$sQuery = "SELECT   *    
                   FROM adresse 
            	   WHERE 1=1 
            	   {$sCritere}";
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
    
    /*
     * ajout d'une nouvelle adresse pour une personne
     */
	public function adresse_insert()
    {
    	$sQuery = "INSERT INTO adresse (
    			Type_adresse, 
    			Etat_adresse,
    			Ligne1_adresse,
    			Ligne2_adresse,
    			Ligne3_adresse,
    			Identifiant_personne
    			) values (
    		".self::$_oConnexion->text($this->_TYPE_ADR)
    		.", '$this->_ETAT_ADR'
    		  , ".self::$_oConnexion->text($this->_LIGNE1_ADR)
    		.",	".self::$_oConnexion->text($this->_LIGNE2_ADR)
    		.",	".self::$_oConnexion->text($this->_LIGNE3_ADR)
    		.",	$this->_IDENTIFIANT_PERSONNE
    			)";
    	
    	$mId = self::$_oConnexion->execute($sQuery);
    	return $mId;
    }
    
    /*
     * 
     */
    public function adresse_update()
    {
    	$sQuery = "UPDATE adresse SET 
    		 	Type_adresse 		= ".self::$_oConnexion->text($this->_TYPE_ADR) .",
	            Etat_adresse		= ".self::$_oConnexion->text($this->_ETAT_ADR) .",
	            Ligne1_adresse	 	= ".self::$_oConnexion->text($this->_LIGNE1_ADR) .",
	            Ligne2_adresse 		= ".self::$_oConnexion->text($this->_LIGNE2_ADR) .",
	            Ligne3_adresse 		= ".self::$_oConnexion->text($this->_LIGNE3_ADR) .",
	            Identifiant_personne = $this->_IDENTIFIANT_PERSONNE 
	    		WHERE Identifiant_adresse 	= ".$this->_IDENTIFIANT_ADRESSE;

    	
    	return self::$_oConnexion->execute($sQuery);
    }
    
    /*
     * 
     */
	public function adresse_delete()
    { 	
	    $sQuery = "DELETE FROM adresse WHERE Identifiant_adresse 	= ".$this->_IDENTIFIANT_ADRESSE;
    	
    	return self::$_oConnexion->execute($sQuery);
    }
    
	function adresse_getActiveListForPersonne( $idPersonne )
    {
        
    	$sQuery = "SELECT Identifiant_adresse, Ligne1_adresse, Ligne2_adresse, Ligne3_adresse, 
    		Type_adresse, Etat_adresse   
                   FROM adresse 
            	   WHERE Identifiant_personne= '".$idPersonne."'
            	   AND Etat_adresse = 'A' ";          	    ;
        $aRow =  self::$_oConnexion->query($sQuery);

        return $aRow;
    }
    
	public function adresse_desactive()
    { 	
    	$this->_ETAT_ADR = 'I';
    	
    	return $this->adresse_update();
    }
}
?>